A trend in the personal computer industry is to equip computer systems with memory storage devices having removable media. While removable media devices have been used in computers for some time, it has only been relatively recent that high capacity removable media devices have become popular in the personal computer marketplace. For example, CD-ROM (compact disk read-only-memory) drives are now typically bundled with many personal computer systems when purchased. Another example of a removable media device is the recently introduced DVD, which is capable of holding approximately 4.7 Gigabytes of information.
A computer user can insert, remove and replace removable media within the drive. Once a removable medium is placed within the drive, the computer is then able to access and read information on the removable medium. With removable media which are read/write capable, the computer is able to write information or data to the removable medium as well. In this manner, the user is able to take advantage of the large storage capacity within a memory storage device while avoiding the inflexible nature of fixed-disk or non-removable media memory storage devices. Examples of such high capacity memory storage devices include digital tape drives, Bernoulli disk drives, and ZIP drives and JAZ drives manufactured by IOmega, Inc.
One of the problems found when using a removable medium is the potential for lost data when an ejection switch is depressed on the removable medium's drive. Many removable memory devices automatically and autonomously eject the medium when the user depresses the ejection switch or button. In some instances, the user may think the computer is finished writing data to the removable medium, while the computer may have only cached the data. In other instances, the user may have accidentally depressed the ejection switch or button on the front panel of the removable medium's drive. In both situations, any data the operating system has not saved to the medium within the drive may be lost.
Essentially, the problem is that many removable media devices are unable to asynchronously interrupt the operating system when a user intentionally or unintentionally attempts to eject the removable medium. Various locking schemes and volume tracking schemes reduce this problem, but do not eliminate it.
Locking schemes typically use a "top-down" approach to avoiding unintentional interruption or lost data. Once the removable media device is recognized by the operating system and is being used, the operating system locks the removable medium within the drive in a top-down fashion. The front panel buttons for the drive are disabled. In other words, pressing the ejection switch or button on the device is totally ignored, sometimes to the bewilderment of the user. The user is forced to know which application is using the removable medium within the drive and attempt to release the medium from the software (top) side of the equation. This often leaves users frustrated if they are not sure which applications are using the medium and may require time intensive interaction with the computer just to eject the medium.
Volume tracking schemes are another possible solution to the data loss problem. For example, some operating systems track the open media volumes being used. If the user hits the ejection switch for the drive having a removable medium being tracked as open, the drive autonomously ejects the medium while the operating system merely notes the medium is no longer there. The next time the operating system needs to access the removable medium, the operating system notes that the medium is no longer present and informs the users that the medium is no longer accessible. While this allows the operating system to find out the status of the removable medium, such volume tracking schemes still do not control the ejection process. The operating system finds out the status of the removable medium only after it is ejected from the drive. Thus, there still exists the problem of potential data loss when writing to the medium despite the ability for the operating system to track status of the medium within the drive.
Therefore, there is a need for a system for achieving an asynchronous type of media status notification (1) by devices which cannot asynchronously interrupt the operating system, (2) which minimizes communication traffic between the device and the operating system, (3) which is flexible and portable, (4) which uses a uniform method for media status notification across different bus and device implementations, and (5) which allows the operating system to control whether the removable medium should be ejected.